package com.tecnalia.authz.common.request.xacml;

import org.jboss.security.xacml.interfaces.RequestContext;

public interface IXACMLRequest {

	/**
	 * Creates the request.
	 *
	 * @param subjectID the subject id
	 * @param resID the res id
	 * @param action the action
	 * @param roleGroup the role group
	 * @return the request context
	 */
	public abstract RequestContext CreateRequest(String subjectID,
			String resID, String action, String roleGroup);

	/**
	 * Creates the request.
	 *
	 * @param subjectID the subject id
	 * @param resID the res id
	 * @param action the action
	 * @param roleGroup the role group
	 * @return the request context
	 */
	public abstract RequestContext CreateRequest(String subjectID,
			String[] resID, String action, String roleGroup);

	/**
	 * Creates the request attr list.
	 *
	 * @param subjectID the subject id
	 * @param resID the res id
	 * @param action the action
	 * @param roleGroup the role group
	 * @return the request context
	 */
	public abstract RequestContext CreateRequestAttrList(String subjectID,
			String[] resID, String action, String roleGroup);

	/**
	 * Creates the request.
	 *
	 * @param subjectID the subject id
	 * @param resID the res id
	 * @param action the action
	 * @param roleGroup the role group
	 * @return the request context[]
	 */
	public abstract RequestContext[] CreateListRequest(String subjectID,
			String[] resID, String action, String roleGroup);

}